<?php

namespace app\api\controller;

use app\common\controller\Api;
use EasyWeChat\Factory;
use think\Db;

use think\Config;
use think\Validate;//验证
use fast\Random;
use fast\Http;

use app\api\controller\Tpmecms;
// use app\api\controller\Pay;



/**
 * 地址管理📦   
 */
class Addr extends Tpmecms
{

    protected $noNeedLogin = ['get_openid','get_user_mobile'];
    protected $noNeedRight = ['*'];

    protected $pros = null;




    // public $uid = '';
    public function _initialize()
    {
        
        parent::_initialize();
    }

    /**
     * 添加地址
     * 
     * @param string $addr 详细地址
     * @param string $name 姓名
     * @param string $tel 电话
     * @param string $city 省/市/区（用/拼接)
     * @param string $status 默认为1（1不默认地址,2默认地址
     */
    public function add_addr($addr=null , $name = null , $tel = null, $city=null,$status=1)
    {
        $data['uid'] = $this->auth->id;
        $data['addr'] = $addr;
        $data['name'] = $name;
        $data['tel'] = $tel;
        $data['city'] = $city;
        $data['status'] = $status;
        $res = Db::name('addr')->where($data)->find();
        if($res){
            $this->error('已经有同样的地址');
        }

        $data['time'] = time();
        $id = Db::name('addr')->insertGetId($data);
        if($status=='2')$this->set_default($id);
        $this->success('添加成功');
    }

    /**
     * 获取我的地址列表
     * 
     * @param integer $page 页码默认1
     * @param integer $limit 默认10个
     * @return void
     */
    public function get_addr_list($page=1,$limit = 10)
    {
        $list = Db::name('addr')->where('uid',$this->auth->id)->order('time desc')->page($page,$limit)->select();
        $this->success('ok',$list);
    }

    /**
     * 编辑地址
     * 
     * @param int $id 地址id 
     * @param string $addr 详细地址
     * @param string $name 姓名
     * @param string $tel 电话
     * @param string $city 省/市/区（已/拼接）
     * @param string $status 默认为1（1不默认地址,2默认地址
     *  
     */
    public function edit_addr($id,$addr=null , $name = null , $tel = null, $city=null,$status='1')
    {
        $res = Db::name('addr')->find($id);
        if(!$res){
            $this->error('没有该地址');
        }

        $data['uid'] = $this->auth->id;
        $data['addr'] = $addr;
        $data['name'] = $name;
        $data['tel'] = $tel;
        $data['city'] = $city;
        $res = Db::name('addr')->where('id',$id)->update($data);
        $data['status'] = $status;

        // $data['time'] = time();
        // $id = Db::name('addr')->insertGetId($data);
        if($status=='2')
            $this->set_default($id);
        if($res){
            $this->success('编辑成功');
        }else{
            $this->error('编辑失败');
        }
    }

    /**
     * 设置默认地址
     * 
     * @param int $id 地址id 
     */
    public function set_default_addr($id)
    {
        $this->success('设置成功',$this->set_default($id));
    }


    /**
     * 设置默认地址
     * 
     * @param int $id 地址id 
     */
    protected function set_default($id)
    {
        Db::name('addr')->where('uid',$this->auth->id)->update(['status'=>'1']);
        return Db::name('addr')->where('uid',$this->auth->id)->where('id',$id)->update(['status'=>'2']);
    }

    /**
     * 删除地址
     * 
     * @param string $ids 地址id  单个或用,拼接的多个
     */
    public function del_addr($ids)
    {
        $res = Db::name('addr')->where('uid',$this->auth->id)->where('id','in',$ids)->delete();
        $this->success('删除成功',$res);
    }



}